﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Iacym.Entities;

namespace Iacym.Repository
{
    public class UsuarioMenuRepository:MasterRepository,IUsuarioMenuRepository
    {
        public List<USUARIO_MENU> GetAllUsuarioMenuByCriterio(int idPersona)
        {
            var query = from c in context.USUARIO_MENU.Include("MENU").Include("USUARIO")
                        where c.USUARIO.PersonaId.Equals(idPersona)
                        select c;
            return query.ToList();
        }

        public USUARIO_MENU GetAllUsuarioMenuByDniPersona(string dni)
        {
            var query = from c in context.USUARIO_MENU.Include("MENU").Include("USUARIO")
                        where c.USUARIO.PERSONA.Dni == dni
                        select c;
            return query.SingleOrDefault();
        }


        public List<USUARIO_MENU> GetAllUsuarioMenu(int idPersona)
        {
            var query = from c in context.USUARIO_MENU.Include("MENU")
                        where c.UsuarioId.Equals(idPersona)
                        select c;
            return query.ToList();
        }

        public USUARIO_MENU GetAllFromUsuarioByPersonaFromLogin(string dni)
        {
            var query = from c in context.USUARIO_MENU.Include("MENU")
                        where c.USUARIO.PERSONA.Dni == dni
                        select c;
            return query.FirstOrDefault();
        }


        public void deleteDetalle(int idDet, int idMenu)
        {
            var existe = context.USUARIO_MENU.Where(p => p.Id.Equals(idDet) && p.MenuId.Equals(idMenu)).SingleOrDefault();

            if (existe != null)
            {
                context.USUARIO_MENU.Remove(existe);
                context.SaveChanges();
            }
        }


        public List<USUARIO_MENU> GetAllFromDetalleMenuUsuarioByUsuarioId(int id)
        {
            var query = from c in context.USUARIO_MENU.Include("MENU").Include("USUARIO")
                        where c.UsuarioId.Equals(id)
                        select c;

            return query.ToList();
        }
    }
}
